package cn.fu.customTag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * @Title: IterationTagDemo.java
 * @Package cn.fu.customTag
 * @Description: 自定义循环（el表达示变量）有缺陷，tomcat对自定义标签有缓存
 * @author zhangxiaofu
 * @Company www.viewhigh.com
 * @date 2016年7月23日 下午9:30:59
 * @version V1.0
 */
public class IterationTagDemo extends TagSupport {
	private String var;
	private String[] items;

	public String[] getItems() {
		return items;
	}

	public void setItems(String[] items) {
		this.items = items;
	}

	public String getVar() {
		return var;
	}

	public void setVar(String var) {
		this.var = var;
	}

	int i = 1;

	@Override
	public int doStartTag() throws JspException {
		// 第一次执行
		if (items != null && items.length > 0) {
			pageContext.setAttribute("name", items[0]);
			// 执行标签体
			return EVAL_BODY_INCLUDE;
		} else {
			// 跳过标签体
			return SKIP_BODY;
		}
	}

	@Override
	public int doAfterBody() throws JspException {
		if (i < items.length) {
			pageContext.setAttribute("name", items[i]);
			i++;
			return EVAL_BODY_AGAIN;
		} else {
			return SKIP_BODY;
		}
	}
}
